Consulta de Guías Docentes



Academic Year/course: 2023/24

453 - Degree in Mathematics

27024 - Computer Science II


Syllabus Information

Academic year:
2023/24
Subject:
27024 - Computer Science II
Faculty / School:
100 - Facultad de Ciencias
Degree:
453 - Degree in Mathematics
ECTS:
6.0
Year:
4
Semester:
First semester
Subject type:
Optional
Module:
---

1. General information

In this subject it is carried out an introduction to the object-oriented programming paradigm (OOP). The basics of the event-driven programmming and the use of generics types are also presented.

The approaches and objectives of this module are aligned with the Sustainable Development Goals (SDGs) of the United Nations 2030 Agenda; the learning activities could contribute to some extent to the achievement of the goals 4 (quality education), 5 (gender equality), 8 (decent work and economic growth), and 10 (reducing inequality).

2. Learning results

  • Solve problems using the object-oriented programming paradigm.
  • Understand and use inheritance and polymorphism in application design.
  • Understand and use class diagrams in application development.
  • Know the basics of event-driven programming and use it in the development of graphical user interfaces.
  • Know the foundamentals of generic programming and its application in the design and implementation of complex data types.

3. Syllabus

  1. The object-oriented paradigm (OOP). The Java Virtual Machine: compiling and executing programs.
  2. Review of elements of structured programming in the Java language: predefined types; variables and constants; operators and expressions; usual mathematical functions (the Math class). Structured statements: sequential, conditional and iterative. Defining and invoking class methods. Method signatures: overloading methods.
  3. Introducing OOP. Objects, classes and references (the null reference). The life cycle of Java objects: the new operator and constructor methods, accessing members and message passing, the Java garbage collector. Array objects.
  4. Defining classes. Instance and class members. Writing constructor methods. Access levels: the public interface of a class. Namespaces: Java packages.
  5. An introduction to UML class diagrams. Class associations and associative classes. Roles and navigation.
  6. Inheritance: concept and types, method overriding. Class hierarchy: the Java Object class. Polymorphism: virtual methods. Modeling (generalization and specialization): abstract classes and methods.
  7. The Java type system: Java interfaces. Generic programming in Java. The Java collections framework.
  8. Exceptions: rising, handling and specification.
  9. Persistence: binary and text streams. Object persistence: the Serializable interface. Access to remote resources: File and URL classes.
  10. Event-driven programming: the Java event model. GUIs programming: containers, menus and basic controls.

4. Academic activities

Master classes: 30 hours.
Computer classes: 30 hours.
Project: 27 hours.
Study: 60 hours.
Assessment tests: 3 hours.

5. Assessment system

Any student will be guaranteed the right to pass the subject by a final comprehensive exam. Alternatively, the student will be given the possibility to pass the subject by continuous evaluation as follows:

  • 75% of the final mark by solving (design and programming) three problems, which will be posed and done in three of the problem solving sessions.
  • 25% by the design and programming of a complete application.


Curso Académico: 2023/24

453 - Graduado en Matemáticas

27024 - Informática II


Información del Plan Docente

Año académico:
2023/24
Asignatura:
27024 - Informática II
Centro académico:
100 - Facultad de Ciencias
Titulación:
453 - Graduado en Matemáticas
Créditos:
6.0
Curso:
4
Periodo de impartición:
Primer semestre
Clase de asignatura:
Optativa
Materia:
---

1. Información básica de la asignatura

En esta asignatura se realiza una introducción al paradigma de programación orientado a objetos (POO) y se presentan los fundamentos de la programación con tipos parametrizados y guiada por eventos.

Los planteamientos y objetivos de la asignatura están alineados con los Objetivos de Desarrollo Sostenible (ODS) de la Agenda 2030 de Naciones Unidas; en concreto, las actividades de aprendizaje previstas en esta asignatura contribuirán en alguna medida al logro de los objetivos 4 (educación de calidad), 5 (igualdad de género), 8 (trabajo decente y crecimiento económico) y 10 (reducción de las desigualdades).

2. Resultados de aprendizaje

  • Ser capaz de abordar la solución de problemas aplicando el paradigma de la programación orientada a objetos.
  • Comprender y utilizar la herencia y el polimorfismo en el diseño de aplicaciones.
  • Comprender y utilizar los diagramas de clases en el desarrollo de aplicaciones.
  • Ser capaz de desarrollar interfaces gráficas de usuario guiadas por eventos.
  • Conocer los fundamentos de la programación genérica y poder aplicarlos para el uso y, eventualmente, la construcción de tipos de datos.

3. Programa de la asignatura

  1. El paradigma de programación orientado a objetos. La máquina virtual de Java: compilación y ejecución de programas.
  2. Revisión de elementos de la programación estructurada en el lenguaje Java. Tipos primitivos; variables y constantes; operadores y expresiones; funciones matemáticas usuales: la clase Math. Sentencias elementales: asignación, lectura básica por teclado (la clase Scanner), escritura en pantalla. Composición secuencial, condicional e iterativa. Definición e invocación de métodos de clase. Sobrecarga de métodos. Recursión.
  3. Introducción a la programación orientada a objetos. Objetos, clases y variables referencia: la referencia null. El ciclo de vida de un objeto: creación, el operador new y los métodos constructores; uso, acceso a miembros y paso de mensajes; la destrucción de un objeto. Los objetos arrays de Java.
  4. Definición de una clase. Miembros de instancia y de clase. Definición de los métodos constructores. Niveles de acceso a miembros: la interfaz pública de una clase. Espacios de nombres: paquetes de clases.
  5. Introducción al diseño orientado a objetos. Diagramas de clases de UML. Asociaciones y clases asociativas. Roles y navegación.
  6. Herencia: concepto y tipos; la redefinición de métodos. Jerarquía de clases: la clase Object de Java. Polimorfismo: métodos virtuales. Generalización y especialización: clases y métodos abstractos.
  7. El sistema de tipos de Java: interfaces. Programación con genéricos en Java. Aplicación a la implementación de tipos de datos: las colecciones de Java.
  8. Gestión de errores en tiempo de ejecución. Excepciones: generación, tratamiento y notificación.
  9. Persistencia: entrada/salida de texto y binaria. Persistencia de objetos: la interface Serializable. Acceso a recursos remotos: las clases File y URL.
  10. Programación dirigida por eventos: el mecanismo de notificación-suscripción. Programación de interfaces gráficas de usuario: contenedores, menús y controles básicos.

4. Actividades académicas

Clases magistrales: 30 horas.
Prácticas informatizadas: 30 horas.
Trabajos docentes: 27 horas.
Estudio: 60 horas.
Pruebas de evaluación: 3 horas.

5. Sistema de evaluación

  1. Resolución de tres problemas de programación y diseño que se realizarán en clases de prácticas. Esta actividad supone el 75% de la calificación final un 25% cada una).
  2. Diseño y programación de una aplicación. Esta actividad supone el 25% de la calificación final.

No obstante, conforme a la normativa de evaluación de la Universidad de Zaragoza, el estudiante podrá superar la asignatura mediante una prueba global única.